###############################################################################
# AZ cleaning
#
# written may 8 2024
#   sbaltz at mit
###############################################################################

import pandas as pd

RAW_FILE_NAME = '../transcribed/2020_general_mohave_hand_count.csv'
SAVE_FILE_NAME = '../ready/mohave_cleaned.csv'
COUNTY_NAME = 'MOHAVE'

ct = pd.read_csv(RAW_FILE_NAME)

cleaned = pd.DataFrame()

for i in range(len(ct)):
    if 'Precinct Counted: ' in str(ct['precinct'][i]):
        precinct = str(ct['precinct'][i].replace('Precinct Counted: ',''))
        mode = 'ELECTION DAY'
    if 'EARLY BALLOT' in str(ct['party'][i]):
        precinct = ''
        mode = 'EARLY'
    if 'Race: ' in str(ct['original'][i]):
        office = str(ct['original'][i].replace('Race: ',''))
    if str(ct['original'][i]) != 'nan' and str(ct['audited'][i]) != 'nan':
        try:
            state = "ARIZONA"
            county = COUNTY_NAME,
            candidate = str(ct['candidate'][i])
            party = str(ct['party'][i])
            original = int(ct['original'][i])
            audited = int(ct['audited'][i])
            difference = audited - original
            method = "MANUAL"
            if 'Totals' not in candidate:
                cleaned = pd.concat([cleaned,
                            pd.DataFrame([[state,county,precinct,office,\
                            candidate,party,original,audited,difference,\
                            mode,method]])
                            ])
        except Exception as inst:
            print(f"ROW {i} NOT SAVED: ", inst)

cleaned.columns = ['state',
                   'county',
                   'precinct',
                   'office',
                   'candidate',
                   'party',
                   'original',
                   'audited',
                   'difference',
                   'mode',
                   'type'
                  ]

cleaned.precinct = cleaned.precinct.str.strip()
cleaned.office = cleaned.office.str.strip()
cleaned.county = COUNTY_NAME

cleaned.to_csv(SAVE_FILE_NAME, index=False)
